$(function () {
    let params = {
        //	string	搜索关键词，可以为空，为空返回某类型所有文章
        key:'',
        //	string	文章类型id，可以为空，为空返回所有类型文章
        type:'',
        //string	文章状态，草稿 ，已发布,为空返回所有状态文章
        state:'',
        //number	当前页，为空返回第1页
        page:1,
        //number	每页显示条数，为空默认每页6条
        perpage	:10
    }
    //静态渲染
    function getArticleList() {
        $.ajax({
            url: 'http://localhost:8080/api/v1/admin/article/query',
            data:params,
            headers: {
                Authorization: localStorage.getItem('token')
            },
            success: function (res) {
                if (res.code === 200) {
                    console.log(res);
                    let html = template('articleList', res.data)
                    $('tbody').html(html)
                    const totalCount = res.data.totalCount
                    layuiRender(totalCount)
                }
            }
        })
    }

    function layuiRender(totalCount) {
            var laypage = layui.laypage;
            //执行一个laypage实例
            laypage.render({
              elem: 'test1' //注意，这里的 test1 是 ID，不用加 # 号
                , count: totalCount //数据总数，从服务端得到
                , limit: params.perpage || 6,
                curr:params.page 
              ,jump: function(obj, first){
                //obj包含了当前分页的所有参数，比如：
                console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。                
                //首次不执行
                if(!first){
                    params.page = obj.curr
                    getArticleList()
                }
              }
           
            });
    }

    getArticleList()
    getArticleCategory()
      
    //动态渲染文章分类下拉列表
    function getArticleCategory() {
        $.ajax({
            url: 'http://localhost:8080/api/v1/admin/category/list',
            headers: {
                Authorization:localStorage.getItem('token')
            },
            success: function (res) {
                console.log(res);
                if (res.code === 200) { 
                    // function fn1(html,value) {
                    //    return html += `<option value='${value.id}'>${value.name}</option>`
                    // }
                    // // let html = res.data.reduce(fn1, 0) fn1回调函数 0初始值
                    
                    // let html = res.data.reduce(fn1,`<option value=''>所有分类</option>`)
                    // $('#selCategory').html(html)

                    const html = res.data.reduce((html, value) => html += `<option value='${value.id}'>${value.name}</option>`, `<option value=''>所有分类</option>`)
                    $('#selCategory').html(html)
                }
                
            }
            
        })
    }

    //筛选按钮 一定把页码重置
    $('#btnSearch').on('click', function () {
        params.key = $('#aname').val().trim()
        params.type = $('#selCategory').val().trim()
        params.state = $('#selStatus').val().trim()

        params.page = 1

        getArticleList()
    })

    //重置按钮
    $('#btnSearch').next().on('click', function () {
        $('#aname').val('')
        $('#selCategory').val('')
        $('#selStatus').val('')

        params = {
            key:'',
            type:'',
            state:'',
            page:1,
            perpage	:10
        }
        getArticleList()
    })

    //删除操作
    $('table').on('click', '.delete', function () {
        layer.confirm('是否要删除', (index)=> {
            let id = $(this).parents('tr').data('id')
            console.log(id);
            $.ajax({
                url: 'http://localhost:8080/api/v1/admin/article/delete',
                headers: {
                    Authorization:localStorage.getItem('token')
                },
                type: 'post',
                data: { id },
                success(res) {
                    console.log(res);
                    if (res.code === 200) {
                        getArticleList()
                        layer.close(index)
                    }
                    else {
                        console.log('删除失败了');
                    }
                }
                
            })

        })
    })


})